/**
 * ProcessDraft.h
 * Coyright (c) 2009 Xiaofeng Gu. All Rights Reserved.
 * Author : Xiaofeng Gu
 *
 * Creation Data : 2009/06/11
 */

#pragma once
#include <map>
#include "ObjectBlock.h"

typedef std::map<CString, IObjectBlock*> BlockMap;
typedef std::pair<CString, IObjectBlock*> BlockPair;

// -------------------------------------------------------------------
// CProcessDraft class
// -------------------------------------------------------------------
class CProcessDraft
{
public:
	CProcessDraft();
	virtual ~CProcessDraft();

	/**
	 * Method that adds block information to process draft
	 * @param strInterName Input CString object that specifies object internal name.
	 * @param pBlock       Input IObjectBlock object that specifies the block object.
	 */
	HRESULT							AddBlock(CString strInterName,
									IObjectBlock* pBlock);

	/**
	 * Method that returns block object from process draft.
	 * @param strInterName Input CString object that specifies object internal name.
	 */
	IObjectBlock*					GetBlock(CString strInterName);

private:
	BlockMap*						m_pBlockMap;
};